package com.solution.admin.order.entity;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.solution.common.entity.BaseEntity;

/**
 * 订单信息实体类
 * @author lilp
 * @date 2017-09-14 23:35:39
 */
public class OrderEntity extends BaseEntity {
	private static final long serialVersionUID = -3926291988306842687L;
	
	/**
	 * 订单编号
	 */
	private String orderCode;
	
	/**
	 * 下单时间
	 */
	private Date orderTime; 
	private String orderTimeStr;
	
	/**
	 * 客户编号
	 */
 	private long customerId;
	
	/**
	 * 客户名称
	 */
	private String customerName;
	
	/**
	 * 客户电话
	 */
	private String customerMobile;
	
	/**
	 * 客户单位ID
	 */
 	private long customerCompanyId;
	
	/**
	 * 客户单位
	 */
	private String customerCompanyName;
	
	/**
	 * 订单金额
	 */
	private BigDecimal orderMoney;
	
	/**
	 * 应付金额
	 */
	private BigDecimal realPayMoney;
	
	/**
	 * 商品合计金额
	 */
	private BigDecimal totalProductMoney;
	
	/**
	 * 商品调价金额总计
	 */
	private BigDecimal adjustProductMoney;
	
	/**
	 * 订单调价金额
	 */
	private BigDecimal adjustOrderMoney;
	
	/**
	 * 运费金额
	 */
	private BigDecimal deliveryFeeMoney;
	
	/**
	 * 活动折扣金额 
	 */
	private BigDecimal promotionDiscountMoney;
	
	/**
	 * 优惠券金额
	 */
	private BigDecimal couponMoney;
	
	/**
	 * 使用优惠券的ids
	 */
	private String couponIds;
	
	/**
	 * 消费积分
	 */
	private BigDecimal userPoints;
	
	/**
	 * 积分抵扣金额
	 */
	private BigDecimal pointsMoney;
	
	/**
	 * 订单所属商家
	 */
 	private int merchantId;
	
	/**
	 * 订单类型
	 */
	private String orderType;
	
	/**
	 * 订单状态
	 */
	private String orderStatus;
	private String orderStatusName;
	
	/**
	 * 是否调过价标记
	 */
	private String adjustPriceFlag;
	
	/**
	 * 支付模式
	 */
	private String payModel;
	private String payModelName;
	
	/**
	 * 支付方式 
	 */
	private String payType;
	private String payTypeName;
	
	/**
	 * 运费支付方式 
	 */
	private String deliveryFeePayType;
	private String deliveryFeePayTypeName;
	
	/**
	 * 自提客户的物流配送方式
	 */
	private String deliveryIntro;
	
	/**
	 * 快递方式
	 */
	private String deliveryType;
	private String deliveryTypeName;
	
	/**
	 * 收货人姓名
	 */
	private String receiverName;
	
	/**
	 * 收货人手机
	 */
	private String receiverMobile;
	
	/**
	 * 收货省
	 */
	private String provinceCode;
	
	/**
	 * 收货省名称
	 */
	private String provinceName;
	
	/**
	 * 收货市
	 */
	private String cityCode;
	
	/**
	 * 收货市名称
	 */
	private String cityName;
	
	/**
	 * 收货区
	 */
	private String areaCode;
	
	/**
	 * 收货区名称
	 */
	private String areaName;
	
	/**
	 * 街道代码
	 */
	private String streetCode;
	
	/**
	 * 街道名称
	 */
	private String streetName;
	
	/**
	 * 收货详细地址
	 */
	private String address;
	
	/**
	 * 邮编
	 */
	private String zipCode;
	
	/**
	 * 开票类型
	 */
	private String invoiceType;
	private String invoiceTypeName;
	
	/**
	 * 销售经理工号
	 */
	private String salesmanCode;
	
	/**
	 * 销售经理名称
	 */
	private String salesmanName;
	
	/**
	 * 调价时间 
	 */
	private String adjustPriceTime;
	
	/**
	 * 调价原因
	 */
	private String adjustReason;
	
	/**
	 * 商务经理审核人
	 */
	private String approverCode;
	
	/**
	 * 商务经理名称
	 */
	private String approverName;
	
	/**
	 * 商务经理审核结果
	 */
	private String approveResult;
	
	/**
	 * 订单取消原因
	 */
	private String cancelReason;
	
	/**
	 * 修改人
	 */
	private String modifier;
	
	/**
	 * 商务经理审核时间
	 */
	private Date approveTime; 
	
	/**
	 * 商务经理审核意见
	 */
	private String approveReason;
	
	
	/**
	 * 商品详情信息
	 */
	private String productDetail;
	
	/**
	 * 商品列表
	 */
	private List<OrderDetailEntity>  productList;
	
	/**
	 * 物流单号
	 */
	private String deliveryCode;
	private String deliveryInfo;
	/**
	 * 发货单id
	 */
	private long deliveryBillId;
	
	/**
	 * 支付时间
	 */
	private Date payTime;
	/**
	 * 发货时间（多次发货，记最后一次发货时间）
	 */
	private Date sendTime;
	/**
	 * 签收时间
	 */
	private Date signTime;
	/**
	 * 上传合同时间
	 */
	private Date uploadContractTime;
	/**
	 * 订单取消时间
	 */
	private Date cancelTime;
	
	/**
	 * 订单完结时间(如果是立即付款，完成时间=签收时间)
	 * 货到付款时，完成时间=核销时间
	 */
	private Date finishTime;
	
	/**
	 * 评论标识(0 -未评论  1-已评论)
	 */
	private String appraiseFlag;
	
	/**
	 * 订单备注
	 */
	private String intro;
	
	/**
	 * 订单付款状态 
	 */
	private String payStatus;
	
	/**
	 * 待付款订单数量
	 */
	private int waitPayCount;
	/**
	 * 欠款订单数量
	 */
	private int debtPayCount;
	/**
	 * 审核未通过订单数量
	 */
	private int notPassCount;
	/**
	 * 逾期未付款订单数量
	 */
	private int overDuedCount;
	
	/**
	 * 取消备注
	 */
	private String cancelIntro;
	
	/**
	 * 用于部分发货时，用户在待发货状态下，可以进行签收
	 */
	private String showSign;
	/* 打款银行名称*/
	private String bankName;
	
	/**
	 * 订单编号
	 */
	public String getOrderCode() {
		return orderCode;
	}
	public void setOrderCode(String orderCode) {
		this.orderCode=orderCode;
	}

	/**
	 * 下单时间
	 */
	public Date getOrderTime() {
		return orderTime;
	}
	public void setOrderTime(Date orderTime) {
		this.orderTime=orderTime;
	}

	/**
	 * 客户名称
	 */
	public String getCustomerName() {
		return customerName;
	}
	public long getCustomerId() {
		return customerId;
	}
	public void setCustomerId(long customerId) {
		this.customerId = customerId;
	}
	public void setCustomerName(String customerName) {
		this.customerName=customerName;
	}

	/**
	 * 客户电话
	 */
	public String getCustomerMobile() {
		return customerMobile;
	}
	public void setCustomerMobile(String customerMobile) {
		this.customerMobile=customerMobile;
	}
	public long getCustomerCompanyId() {
		return customerCompanyId;
	}
	public void setCustomerCompanyId(long customerCompanyId) {
		this.customerCompanyId = customerCompanyId;
	}
	/**
	 * 客户单位
	 */
	public String getCustomerCompanyName() {
		return customerCompanyName;
	}
	public void setCustomerCompanyName(String customerCompanyName) {
		this.customerCompanyName=customerCompanyName;
	}

	/**
	 * 订单金额
	 */
	public BigDecimal getOrderMoney() {
		return orderMoney;
	}
	public void setOrderMoney(BigDecimal orderMoney) {
		this.orderMoney=orderMoney;
	}

	/**
	 * 应付金额
	 */
	public BigDecimal getRealPayMoney() {
		return realPayMoney;
	}
	public void setRealPayMoney(BigDecimal realPayMoney) {
		this.realPayMoney=realPayMoney;
	}

	/**
	 * 商品调价金额总计
	 */
	

	/**
	 * 订单调价金额
	 */
	public BigDecimal getAdjustOrderMoney() {
		return adjustOrderMoney;
	}
	public BigDecimal getAdjustProductMoney() {
		return adjustProductMoney;
	}
	public void setAdjustProductMoney(BigDecimal adjustProductMoney) {
		this.adjustProductMoney = adjustProductMoney;
	}
	public void setAdjustOrderMoney(BigDecimal adjustOrderMoney) {
		this.adjustOrderMoney=adjustOrderMoney;
	}

	/**
	 * 运费金额
	 */
	public BigDecimal getDeliveryFeeMoney() {
		return deliveryFeeMoney;
	}
	public void setDeliveryFeeMoney(BigDecimal deliveryFeeMoney) {
		this.deliveryFeeMoney=deliveryFeeMoney;
	}

	/**
	 * 活动折扣金额 
	 */
	public BigDecimal getPromotionDiscountMoney() {
		return promotionDiscountMoney;
	}
	public void setPromotionDiscountMoney(BigDecimal promotionDiscountMoney) {
		this.promotionDiscountMoney=promotionDiscountMoney;
	}

	/**
	 * 优惠券金额
	 */
	public BigDecimal getCouponMoney() {
		return couponMoney;
	}
	public void setCouponMoney(BigDecimal couponMoney) {
		this.couponMoney=couponMoney;
	}

	/**
	 * 消费积分
	 */
	public BigDecimal getUserPoints() {
		return userPoints;
	}
	public void setUserPoints(BigDecimal userPoints) {
		this.userPoints=userPoints;
	}

	/**
	 * 积分抵扣金额
	 */
	public BigDecimal getPointsMoney() {
		return pointsMoney;
	}
	public void setPointsMoney(BigDecimal pointsMoney) {
		this.pointsMoney=pointsMoney;
	}

	/**
	 * 订单所属商家
	 */
 	public int getMerchantId() {
		return merchantId;
	}
	public void setMerchantId(int merchantId) {
		this.merchantId=merchantId;
	}

	/**
	 * 订单类型
	 */
	public String getOrderType() {
		return orderType;
	}
	public void setOrderType(String orderType) {
		this.orderType=orderType;
	}

	/**
	 * 订单状态
	 */
	public String getOrderStatus() {
		return orderStatus;
	}
	public void setOrderStatus(String orderStatus) {
		this.orderStatus=orderStatus;
	}

	/**
	 * 是否调过价标记
	 */
	public String getAdjustPriceFlag() {
		return adjustPriceFlag;
	}
	public void setAdjustPriceFlag(String adjustPriceFlag) {
		this.adjustPriceFlag=adjustPriceFlag;
	}

	/**
	 * 支付模式
	 */
	public String getPayModel() {
		return payModel;
	}
	public void setPayModel(String payModel) {
		this.payModel=payModel;
	}

	/**
	 * 支付方式 
	 */
	public String getPayType() {
		return payType;
	}
	public void setPayType(String payType) {
		this.payType=payType;
	}

	/**
	 * 运费支付方式 
	 */
	public String getDeliveryFeePayType() {
		return deliveryFeePayType;
	}
	public void setDeliveryFeePayType(String deliveryFeePayType) {
		this.deliveryFeePayType=deliveryFeePayType;
	}

	/**
	 * 快递方式
	 */
	public String getDeliveryType() {
		return deliveryType;
	}
	public void setDeliveryType(String deliveryType) {
		this.deliveryType = deliveryType;
	}
	
	/**
	 * 收货省
	 */
	public String getProvinceCode() {
		return provinceCode;
	}
	public void setProvinceCode(String provinceCode) {
		this.provinceCode=provinceCode;
	}

	/**
	 * 收货省名称
	 */
	public String getProvinceName() {
		return provinceName;
	}
	public void setProvinceName(String provinceName) {
		this.provinceName=provinceName;
	}

	/**
	 * 收货市
	 */
	public String getCityCode() {
		return cityCode;
	}
	public void setCityCode(String cityCode) {
		this.cityCode=cityCode;
	}

	/**
	 * 收货市名称
	 */
	public String getCityName() {
		return cityName;
	}
	public void setCityName(String cityName) {
		this.cityName=cityName;
	}

	/**
	 * 收货区
	 */
	public String getAreaCode() {
		return areaCode;
	}
	public void setAreaCode(String areaCode) {
		this.areaCode=areaCode;
	}

	/**
	 * 收货区名称
	 */
	public String getAreaName() {
		return areaName;
	}
	public void setAreaName(String areaName) {
		this.areaName=areaName;
	}

	/**
	 * 收货详细地址
	 */
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address=address;
	}

	/**
	 * 邮编
	 */
	public String getZipCode() {
		return zipCode;
	}
	public void setZipCode(String zipCode) {
		this.zipCode=zipCode;
	}

	/**
	 * 开票类型
	 */
	public String getInvoiceType() {
		return invoiceType;
	}
	public void setInvoiceType(String invoiceType) {
		this.invoiceType=invoiceType;
	}

	/**
	 * 销售经理工号
	 */
	public String getSalesmanCode() {
		return salesmanCode;
	}
	public void setSalesmanCode(String salesmanCode) {
		this.salesmanCode=salesmanCode;
	}

	/**
	 * 销售经理名称
	 */
	public String getSalesmanName() {
		return salesmanName;
	}
	public void setSalesmanName(String salesmanName) {
		this.salesmanName=salesmanName;
	}

	/**
	 * 调价时间 
	 */
	public String getAdjustPriceTime() {
		return adjustPriceTime;
	}
	public void setAdjustPriceTime(String adjustPriceTime) {
		this.adjustPriceTime=adjustPriceTime;
	}

	/**
	 * 调价原因
	 */

	public void setAdjustReason(String adjustReason) {
		this.adjustReason = adjustReason;
	}
	public void setApproverCode(String approverCode) {
		this.approverCode=approverCode;
	}
	
	
	/**
	 * 商务经理审核人
	 */
	public String getApproverCode() {
		return approverCode;
	}
	public String getAdjustReason() {
		return adjustReason;
	}
	
	/**
	 * 商务经理名称
	 */
	public String getApproverName() {
		return approverName;
	}
	public void setApproverName(String approverName) {
		this.approverName=approverName;
	}

	/**
	 * 商务经理审核结果
	 */
	public String getApproveResult() {
		return approveResult;
	}
	public void setApproveResult(String approveResult) {
		this.approveResult=approveResult;
	}

	/**
	 * 订单取消原因
	 */
	public String getCancelReason() {
		return cancelReason;
	}
	public void setCancelReason(String cancelReason) {
		this.cancelReason=cancelReason;
	}

	/**
	 * 修改人
	 */
	public String getModifier() {
		return modifier;
	}
	public void setModifier(String modifier) {
		this.modifier=modifier;
	}

	/**
	 * 商务经理审核时间
	 */
	public Date getApproveTime() {
		return approveTime;
	}
	public void setApproveTime(Date approveTime) {
		this.approveTime=approveTime;
	}

	/**
	 * 商务经理审核意见
	 */
	public String getApproveReason() {
		return approveReason;
	}
	public void setApproveReason(String approveReason) {
		this.approveReason=approveReason;
	}
	
	public String getReceiverName() {
		return receiverName;
	}
	public void setReceiverName(String receiverName) {
		this.receiverName = receiverName;
	}
	public String getReceiverMobile() {
		return receiverMobile;
	}
	public void setReceiverMobile(String receiverMobile) {
		this.receiverMobile = receiverMobile;
	}
	public String getProductDetail() {
		return productDetail;
	}
	public void setProductDetail(String productDetail) {
		this.productDetail = productDetail;
	}
	public List<OrderDetailEntity> getProductList() {
		return productList;
	}
	public void setProductList(List<OrderDetailEntity> productList) {
		this.productList = productList;
	}
	public String getStreetCode() {
		return streetCode;
	}
	public void setStreetCode(String streetCode) {
		this.streetCode = streetCode;
	}
	public String getStreetName() {
		return streetName;
	}
	public void setStreetName(String streetName) {
		this.streetName = streetName;
	}
	public String getOrderTimeStr() {
		return orderTimeStr;
	}
	public void setOrderTimeStr(String orderTimeStr) {
		this.orderTimeStr = orderTimeStr;
	}
	public String getOrderStatusName() {
		return orderStatusName;
	}
	public void setOrderStatusName(String orderStatusName) {
		this.orderStatusName = orderStatusName;
	}
	public String getPayModelName() {
		return payModelName;
	}
	public void setPayModelName(String payModelName) {
		this.payModelName = payModelName;
	}
	public String getPayTypeName() {
		return payTypeName;
	}
	public void setPayTypeName(String payTypeName) {
		this.payTypeName = payTypeName;
	}
	public String getInvoiceTypeName() {
		return invoiceTypeName;
	}
	public void setInvoiceTypeName(String invoiceTypeName) {
		this.invoiceTypeName = invoiceTypeName;
	}
	public String getDeliveryTypeName() {
		return deliveryTypeName;
	}
	public void setDeliveryTypeName(String deliveryTypeName) {
		this.deliveryTypeName = deliveryTypeName;
	}
	public String getDeliveryCode() {
		return deliveryCode;
	}
	public void setDeliveryCode(String deliveryCode) {
		this.deliveryCode = deliveryCode;
	}
	public BigDecimal getTotalProductMoney() {
		return totalProductMoney;
	}
	public void setTotalProductMoney(BigDecimal totalProductMoney) {
		this.totalProductMoney = totalProductMoney;
	}
	public Date getPayTime() {
		return payTime;
	}
	public void setPayTime(Date payTime) {
		this.payTime = payTime;
	}
	public Date getSendTime() {
		return sendTime;
	}
	public void setSendTime(Date sendTime) {
		this.sendTime = sendTime;
	}
	public Date getSignTime() {
		return signTime;
	}
	public void setSignTime(Date signTime) {
		this.signTime = signTime;
	}
	public Date getUploadContractTime() {
		return uploadContractTime;
	}
	public void setUploadContractTime(Date uploadContractTime) {
		this.uploadContractTime = uploadContractTime;
	}
	public Date getCancelTime() {
		return cancelTime;
	}
	public void setCancelTime(Date cancelTime) {
		this.cancelTime = cancelTime;
	}
	public String getDeliveryFeePayTypeName() {
		return deliveryFeePayTypeName;
	}
	public void setDeliveryFeePayTypeName(String deliveryFeePayTypeName) {
		this.deliveryFeePayTypeName = deliveryFeePayTypeName;
	}
	public Date getFinishTime() {
		return finishTime;
	}
	public void setFinishTime(Date finishTime) {
		this.finishTime = finishTime;
	}
	public String getAppraiseFlag() {
		return appraiseFlag;
	}
	public void setAppraiseFlag(String appraiseFlag) {
		this.appraiseFlag = appraiseFlag;
	}
	public String getIntro() {
		return intro;
	}
	public void setIntro(String intro) {
		this.intro = intro;
	}
	public String getPayStatus() {
		return payStatus;
	}
	public void setPayStatus(String payStatus) {
		this.payStatus = payStatus;
	}
	public int getWaitPayCount() {
		return waitPayCount;
	}
	public void setWaitPayCount(int waitPayCount) {
		this.waitPayCount = waitPayCount;
	}
	public int getDebtPayCount() {
		return debtPayCount;
	}
	public void setDebtPayCount(int debtPayCount) {
		this.debtPayCount = debtPayCount;
	}
	public String getShowSign() {
		return showSign;
	}
	public void setShowSign(String showSign) {
		this.showSign = showSign;
	}
	public String getCouponIds() {
		return couponIds;
	}
	public void setCouponIds(String couponIds) {
		this.couponIds = couponIds;
	}
	public long getDeliveryBillId() {
		return deliveryBillId;
	}
	public void setDeliveryBillId(long deliveryBillId) {
		this.deliveryBillId = deliveryBillId;
	}
	public int getNotPassCount() {
		return notPassCount;
	}
	public void setNotPassCount(int notPassCount) {
		this.notPassCount = notPassCount;
	}
	/**
	 * @return the deliveryInfo
	 */
	public String getDeliveryInfo() {
		return deliveryInfo;
	}
	/**
	 * @param deliveryInfo the deliveryInfo to set
	 */
	public void setDeliveryInfo(String deliveryInfo) {
		this.deliveryInfo = deliveryInfo;
	}
	/**
	 * @return the overDuedCount
	 */
	public int getOverDuedCount() {
		return overDuedCount;
	}
	/**
	 * @param overDuedCount the overDuedCount to set
	 */
	public void setOverDuedCount(int overDuedCount) {
		this.overDuedCount = overDuedCount;
	}
	/**
	 * @return the bankName
	 */
	public String getBankName() {
		return bankName;
	}
	/**
	 * @param bankName the bankName to set
	 */
	public void setBankName(String bankName) {
		this.bankName = bankName;
	}
	public String getDeliveryIntro() {
		return deliveryIntro;
	}
	public void setDeliveryIntro(String deliveryIntro) {
		this.deliveryIntro = deliveryIntro;
	}
	public String getCancelIntro() {
		return cancelIntro;
	}
	public void setCancelIntro(String cancelIntro) {
		this.cancelIntro = cancelIntro;
	}
	
}
